The problem of structural optimization is to find improved or optimal structural designs from a space of possible structural designs. There is a means to evaluate the performances of each candidate design. A search algorithm traverses the design space getting feedback from the performance measures in order to propose new designs. To traverse the design space, the algorithm applies “operators” that take one or many designs and produce another design from those designs.
In the problem domain of schematic-level circuit design, a point in the design space is a circuit topology with its associated component parameters. A circuit topology is characterized by the components that it includes (e.g. resistors, capacitors) and the interconnections among those components. Other problem domains in circuit design include layout-level circuit design.
One way to define the space of possible designs is to begin with initial designs and include all the designs reachable through the application of a finite number of operators. In traditional optimization problems, the design space typically only contains parameters, not structures. This can be called the problem of “parameter optimization.” Operators in parameter optimization only vary the parameters of the design, not the structure. An example parameter optimization problem in circuit design is to find the values for device parameters (e.g. resistances, capacitances) of a given circuit schematic that give the best possible performance measures (e.g. power consumption, bandwidth). In structural optimization, there are also one or more structural operators. These operators actually alter the structure of a candidate design.
A simple example of a structural operator from the domain of schematic-level circuit design is merely to remove a randomly chosen component and leave an open circuit in its place. Structural optimization has benefits over parameter optimization for the reason that the design space is broadened to include different possible structures. With a broader design space than parameter optimization, there is the potential for even better designs to be achieved. Unfortunately, structural optimization is typically very inefficient because it takes large amounts of computational effort to optimize structures. A major reason for the inefficiency is that when structural changes are made (i.e. structural search operators are applied), there is typically a low probability of improving the performance measure of the design.
Generally, structural operators are “non-smooth” operators because they typically result in large changes in design behaviour. A non-smooth operator has typically been designed without consideration of the effects that parameters have on changes in behaviour in the specific domain of application. Applying a non-smooth operator typically leads to non-negligible changes in behaviour. So, on average, expected changes in behaviour are high. Large changes in behaviour usually lead to large changes in performance measures. The larger an expected change in a performance measure, the lower the expected probability of successfully improving the measure.
In the circuit design domain for example, consider the application of the non-smooth operator in which a transistor is randomly removed and open circuited. In all likelihood, the circuit's behaviour in terms of its electrical characteristics (voltages and currents in the circuit) will be radically changed. A large change in the electrical behaviour likely means a large change in the subsequent performance measure, e.g. a large change in open loop gain. With such a large change in open loop gain, there is a small likelihood that the change has been for the better. Successful changes to the circuit's structure are thus rare.
The main benefit of structural optimization over parameter optimization is the ability to create better designs, given enough time, because the scope of possible designs is larger. Unfortunately, structural optimization is too computationally expensive for many applications.